Zookeeper 监控命令
监控命令一览
zooKeeper 支持某些特定的四字命令与其的交互。它们大多是查询命令,用来获取 zooKeeper 服务的当前状态及相关信息。用户在客户端可以通过 telnet 或 nc 向 zooKeeper 提交相应的命令。 zooKeeper 常用四字命令见下表所示:
命令 | 描述 |
---|---|
conf | 输出相关服务配置的详细信息。比如端口号、zk数据以及日志配置路径、最大连接数,session超时、serverId等 |
cons | 列出所有连接到这台服务器的客户端连接/会话的详细信息。包括"接收/发送"的包数量、sessionId、操作延迟、最后的操作执行等信息 |
crst | 重置当前这台服务器所有连接/会话的统计信息 |
dump | 列出未经处理的会话和临时节点,这仅适用于领导者 |
envi | 处理关于服务器的环境详细信息 |
ruok | 测试服务是否处于正确运行状态。如果正常返回"imok",否则返回空 |
stat | 输出服务器的详细信息:接收/发送包数量、连接数、模式(leader/follower)、节点总数、延迟。所有客户端的列表 |
srst | 重置server状态 |
wchs | 列出服务器watchers的简洁信息:连接总数、watching节点总数和watches总数 |
wchc | 通过session分组,列出watch的所有节点,它的输出是一个与watch相关的会话的节点信息,根据watch数量的不同,此操作可能会很昂贵(即影响服务器性能),请小心使用 |
mntr | 列出集群的健康状态。包括"接收/发送"的包数量、操作延迟、当前服务模式(leader/follower)、节点总数、watch总数、临时节点总数 |
注意:telnet 或 nc 这两个是 Linux 上的网络端口检查工具
命令格式:
echo 四字命令 | nc localhost 2181
conf 查看配置
echo conf | nc localhost 2181
输出的内容为:
[root@DESKTOP-84QLCBR]# echo conf | nc localhost 2182
clientPort=2182 # 客户端口号
dataDir=/data/version-2 # 数据快照文件目录
dataDirSize=536871040
dataLogDir=/datalog/version-2 # 事务日志文件目录
tickTime=2000 # 服务器与客户端之间维持心跳的间隔(单位:毫秒)
maxClientCnxns=60 # 最大连接数
minSessionTimeout=4000 # 最小session超时时间
maxSessionTimeout=40000 # 最大session超时时间
serverId=1 # 服务器编号
initLimit=5 # 最大初始化时间
syncLimit=2 # 服务器之间应答的最大超时时间
electionAlg=3 # 选举时使用的算法
electionPort=3388 # 选举端口
quorumPort=2288 # 数据通信端口
peerType=0 # 是否为观察者 1为观察者
membership:
server.1=zoo1:2888:3888:participant;0.0.0.0:2181
server.2=zoo2:2888:3888:participant;0.0.0.0:2181
server.3=zoo3:2888:3888:participant;0.0.0.0:2181
cons 查看会话的详细信息
列出所有连接到这台服务器的客户端连接/会话的详细信息
echo cons | nc localhost 2181
属性 | 含义 |
---|---|
ip | ip地址 |
port | 端口号 |
queued | 等待被处理的请求数,请求缓存在队列中 |
received | 收到的包数 |
sent | 发送的包数 |
sid | 会话id |
lop | 最后的操作 GETD-读取数据 DELE-删除数据 CREA-创建数据 |
est | 连接时间戳 |
to | 超时时间 |
lcxid | 当前会话的操作id |
lzxid | 最大事务id |
lresp | 最后响应时间戳 |
llat | 最后/最新 延时 |
minlat | 最小延时 |
maxlat | 最大延时 |
avglat | 平均延时 |
crst 重置统计信息
重置当前这台服务器所有连接/会话的统计信息
echo crst | nc localhost 2181
dump 列出临时会话
列出未经处理的会话和临时节点
echo dump | nc localhost 2181
随便创建几个临时节点
打印结果
envi 输出服务器环境
输出关于服务器的环境配置信息
echo envi | nc localhost 2181
详细说明:
属性 | 含义 |
---|---|
zookeeper.version | 版本 |
host .name | host信息 |
java.version | java版本 |
java.vendor | 供应商 |
java.home | 运行环境所在目录 |
java.class.path | classpath |
java.library.path | 第三方库指定非java类包的位置(如:dll,so) |
java.io.tmpdir | 默认的临时文件路径 |
java.compiler | JIT 编译器的名称 |
os .name | Linux |
os.arch | amd64 |
os.version | 4.19.104-microsoft-standard |
user .name | 当前用户名 |
user.home | 当前用户的家目录 |
user.dir | /apache-zookeeper-3.6.2-bin |
ruok 检查状态
测试服务是否处于正确运行状态
echo ruok | nc localhost 2181
输出为 imok
表示正常
stat / srvr 检查服务信息
stat 输出服务器的详细信息与 srvr 相似,但是多了每个连接的会话信息
echo stat | nc localhost 2181
echo srvr | nc localhost 2181
属性 | 含义 |
---|---|
Zookeeper version | 版本 |
Latency min/avg/max | 延时 |
Received | 收包 |
Sent | 发包 |
Connections | 连接数 |
Outstanding | 堆积数 |
Zxid | 最大事物id |
Mode | 服务器角色 |
Node count | 节点数 |
srst 重置服务状态
重置 server 状态
echo srst | nc localhost 2181
wchs 列出 watches
列出服务器 watches 的简洁信息
echo wchs | nc localhost 2181
TODO: 注:这个命令好像需要配置,用到再补充